<?php
/**
 * Fuehrt eine Weiterleitung nch 301,302,303 zur angegebenen Url durch
 * 
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2010 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 * 
 * */


Class Yapary_Redirect
{	
    private $oMetatag = NULL;
    
    /** @const 301 Moved Permanently */
    const RESPONSE_301 = 301;
    /** @const 302 Found */
    const RESPONSE_302 = 302;
    /** @const 303 Other */
    const RESPONSE_303 = 303;
    /** @const 307 Temporary Yapary_Redirect */
    const RESPONSE_307 = 307;
    
    
    function __construct (Yapary_Header_Metatag $_cMetatag)
    {
        $this->oMetatag = $_cMetatag;
    }
    
	
	/**
     * Setzt einen Yapary_Redirect zu einer anderen Url des Typs $type.
     * @param string $url : URL der Weiterleitung
     * @param int $typ : Yapary_Redirect Typ {301|302|303}
     * @param int sec : Zeit bis zur Weiterleitung
     * @return bool true=header Yapary_Redirect, false=http_equiv Yapary_Redirect
     */
	public function set( $url, $type=301, $sec = 1 )
	{
	    // Pruefen ob Header gesendet wurde. Falls nein, mache eine Weiterleitung per header
	    // Falls ja, versuche eine http_equiv-Weiterleitung

	    // Versuche eine header-Weiterleitung
	    if (!@headers_sent()) {
	        if (@header("Location: $url")) {
	            return true;
	        }
	    }
	    
        // Header-Weiterleitung fehlgeschlagen, versuchen http_equiv-Weiterleitung
        $this->oMetatag->setRefresh($url, $sec);
		return false;
	}
	

}


?>